//
//  main.m
//  06_homework_NSDate
//
//  Created by dllo on 16/7/11.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

void judgeInterval(NSTimeInterval interval);
void testTime(void);

int main(int argc, const char * argv[]) {
    /*
     NSDate
     
     计算当前时间和一个固定时间的差值,如果差值在60秒内,输出"刚刚",如果在60秒外3600秒内,输出"xx分钟前",如果3600秒外, 3600*24秒内,输出"xx小时前"
     将字符串@"2016年04月01日 01点20分18秒"转换为NSDate对象。
     将1468232420转成日期类型
     研究NSDateComponents
     */
    
    NSDate *nowDate = [NSDate date];
//    NSLog(@"%@", nowDate);
    
    NSDate *date1 = [NSDate dateWithTimeInterval:10 sinceDate:nowDate];
    NSDate *date2 = [NSDate dateWithTimeInterval:1000 sinceDate:nowDate];
    NSDate *date3 = [NSDate dateWithTimeInterval:10000 sinceDate:nowDate];
    
    NSTimeInterval interval1 = [date1 timeIntervalSinceDate:nowDate];
    NSTimeInterval interval2 = [date2 timeIntervalSinceDate:nowDate];
    NSTimeInterval interval3 = [date3 timeIntervalSinceDate:nowDate];
    
    judgeInterval(interval1);
    judgeInterval(interval2);
    judgeInterval(interval3);
    
    NSString *dateString = @"2016年04月01日 01点20分18秒";
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];
    formatter.dateFormat = @"yyyy年MM月dd日 HH点mm分ss秒";
    NSDate *date4 = [formatter dateFromString:dateString];
    NSLog(@"%@", date4);
    
    NSDate *date5 = [NSDate dateWithTimeIntervalSinceNow:1468232420];
    NSLog(@"%@", date5);
    
    
    
    testTime();
    
    
    return 0;
}

void judgeInterval(NSTimeInterval interval) {
    if (interval < 60) {
        NSLog(@"刚刚");
    } else if (interval >= 60 && interval <= 3600) {
        NSInteger minute = interval / 60;
        NSLog(@"%ld分钟前", minute);
    } else if (interval >= 3600 && interval <= 3600 * 24) {
        NSInteger hour = interval / 3600;
        NSLog(@"%ld小时前", hour);
    }
}

void testTime(void) {
    NSDate *now = [NSDate date];//根据当前系统的时区产生当前的时间，绝对时间，所以同为中午12点，不同的时区，这个时间是不同的。
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.timeZone = [NSTimeZone systemTimeZone];//系统所在时区
    df.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSString *systemTimeZoneStr =  [df stringFromDate:now];
    df.timeZone = [NSTimeZone defaultTimeZone];//默认时区，貌似和上一个没什么区别
    NSString *defaultTimeZoneStr = [df stringFromDate:now];
    df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];//直接指定时区
    NSString *plus8TZStr = [df stringFromDate:now];
    df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];//这就是GMT+0时区了
    NSString *gmtTZStr = [df stringFromDate: now];
    NSLog(@"Test Time\nSys:%@\nDefault:%@\n+8:%@\nGMT:%@",systemTimeZoneStr,defaultTimeZoneStr,plus8TZStr,gmtTZStr);
}
